package com.demo.cms.action.manage;

import java.util.List;

import com.demo.Constants;
import com.demo.core.model.Config;
import com.demo.core.model.ConfigItem;
import com.demo.core.model.Form;
import com.demo.core.model.FormItem;
import com.demo.core.model.FormSource;
import com.demo.core.model.FormSourceParam;
import com.demo.core.model.Site;
import com.demo.core.service.base.ConfigItemService;
import com.demo.core.service.base.ConfigService;
import com.demo.core.service.base.FormService;
import com.demo.core.service.base.FormSourceService;
import com.demo.webapp.action.PageAction;

/**
 * 自定义表单Action
 * 自定义表单服务(模型服务)
 * 其中功能：
 * 1.文章模型
 * FIX: 目前未使用
 * @author ryuu.kk
 *
 */
public class FormAction extends PageAction {

	/**
	 * 版本序列化ID
	 */
	private static final long serialVersionUID = 4912117741243678198L;
	
	/**
	 * 自定义表单主键ID
	 */
	private Long id;

	/**
	 * 站点ID
	 */
	private Long siteId;
	
	/**
	 * 自定义表单模型
	 */
	private Form form;
	
	/**
	 * 自定义表单列表
	 */
	private List<Form> formList;
	
	/**
	 * 自定义表单项
	 */
	private FormItem formItem;
	
	/**
	 * 自定义表单项列表
	 */
	private List<FormItem> formItemList;
	
	/**
	 * 配置模型
	 */
	private Config config;
	
	/**
	 * 配置服务
	 */
	private ConfigService configService;
	
	/**
	 * 配置项服务
	 */
	private ConfigItemService configItemService;
	
	/**
	 * 自定义表单资源
	 */
	private FormSource formSource;
	
	/**
	 * 自定义表单资源参数
	 */
	private FormSourceParam formSourceParam;
	
	/**
	 * 自定义表单资源参数列表
	 */
	private List<FormSourceParam> formSourceParamList;
	
	/**
	 * 自定义表单服务
	 */
	private FormService formService;
	
	/**
	 * 自定义表单资源服务
	 */
	private FormSourceService formSourceService;
//
//	/**
//	 * 自定义表单列表
//	 * @return String
//	 */
//	public String list() {
//		
//		Site site = MultisiteContextHolder.getSite();
//		this.siteId = site.getId();
//		if (siteId != null) {
//			this.formList = formService.findFormList(siteId);
//		}
//		
//		return SUCCESS;
//	}
//	
//	/**
//	 * 创建自定义表单
//	 * @return String
//	 */
//	public String create() {
//		
//		return SUCCESS;
//	}
//	
//	/**
//	 * 保存自定义表单
//	 * @return String
//	 */
//	public String save() {
//		
//		id = formService.save(form);
//		return CALLBACK;
//	}
//	
//	/**
//	 * 更新自定义表单
//	 * @return String
//	 */
//	public String update() {
//		
//		formService.updateForm(id, form.getName(), form.getTitle());
//		return CALLBACK;
//	}
//	
//	/**
//	 * 删除自定义表单
//	 * @return String
//	 */
//	public String delete() {
//		
//		formService.deleteForm(id);
//		return CALLBACK;
//	}
//	
//	/**
//	 * 展示自定义表单、表单项及扩展属性
//	 * @return String
//	 */
//	public String item() {
//		
//		this.form = formService.queryForm(id);
//		return SUCCESS;
//	}
//	
//	/**
//	 * 保存自定义表单项
//	 * @return String
//	 */
//	public String saveItem() {
//		
//		formService.save(formItem);
//		return CALLBACK;
//	}
//	/**
//	 * 删除自定义表单项
//	 * @return String
//	 */
//	public String deleteItem() {
//		
//		formService.deleteFormItem(id);
//		return CALLBACK;
//	}
//	
//	/**
//	 * 更新自定义表单项
//	 * @return String
//	 */
//	public String updateItem() {
//		//formService.u
//		
//		return CALLBACK;
//	}
	
	/**
	 * 文章模型管理
	 * @return String
	 */
	public String acreate() {
		
		return SUCCESS;
	}
	
	/**
	 * 文章模型管理
	 * @return String
	 */
	public String asave() {
		
		return CALLBACK;
	}
	
	/**
	 * 文章模型管理
	 * @return String
	 */
	public String aedit() {
		
		return SUCCESS;
	}
	
	/**
	 * 文章模型管理
	 * @return String
	 */
	public String aupdate() {
		
		return CALLBACK;
	}
	
	/**
	 * 删除指定文章模型
	 * @return String
	 */
	public String adelete() {
		
		return CALLBACK;
	}
	
	/**
	 * 文章模型展示
	 * @return String
	 */
	public String atype() {
		
		// 取得文章配置类型
		ConfigItem item = configItemService.find(id);
		if (item == null) {
			addActionError("不存在该文章类型,配置ID" + id);
			return INPUT;
		}
		
		Long formId = Long.parseLong(item.getValue());
		this.form = formService.queryForm(formId);
		
		return SUCCESS;
	}
	
	/**
	 * 文章类型一览
	 * @return String
	 */
	public String alist() {
		// 得到当前访问的站点
		Site site = getSite();
		// 取得文章配置类型
		this.config = configService.query(site.getId(), Constants.CONFIG_ARTICLE_TYPE);
		
		return SUCCESS;
	}
	
	
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public Form getForm() {
		return form;
	}

	public void setForm(Form form) {
		this.form = form;
	}

	public FormItem getFormItem() {
		return formItem;
	}

	public void setFormItem(FormItem formItem) {
		this.formItem = formItem;
	}

	public FormSource getFormSource() {
		return formSource;
	}

	public void setFormSource(FormSource formSource) {
		this.formSource = formSource;
	}

	public FormSourceParam getFormSourceParam() {
		return formSourceParam;
	}

	public void setFormSourceParam(FormSourceParam formSourceParam) {
		this.formSourceParam = formSourceParam;
	}

	public List<Form> getFormList() {
		return formList;
	}

	public List<FormItem> getFormItemList() {
		return formItemList;
	}

	public Config getConfig() {
		return config;
	}

	public void setConfig(Config config) {
		this.config = config;
	}

	public void setConfigService(ConfigService configService) {
		this.configService = configService;
	}

	public void setConfigItemService(ConfigItemService configItemService) {
		this.configItemService = configItemService;
	}

	public void setFormSourceParamList(List<FormSourceParam> formSourceParamList) {
		this.formSourceParamList = formSourceParamList;
	}

	public void setFormService(FormService formService) {
		this.formService = formService;
	}

	public void setFormSourceService(FormSourceService formSourceService) {
		this.formSourceService = formSourceService;
	}
}
